import 'package:flutter/material.dart';

class AvatarUtil {
  // 根据名称生成颜色
  static Color getColorFromName(String name) {
    final List<Color> colors = [
      Colors.grey[900]!,
      Colors.grey[800]!,
      Colors.grey[700]!,
      Colors.grey[600]!,
      Colors.grey[500]!,
      Colors.black87,
      Colors.black54,
      Colors.black45,
      Colors.black38,
    ];

    if (name.isEmpty) {
      return colors[0];
    }

    // 使用名称的第一个字符的ASCII码作为索引
    final int index = name.codeUnitAt(0) % colors.length;
    return colors[index];
  }

  // 获取名称的首字母
  static String getInitials(String name) {
    if (name.isEmpty) {
      return '?';
    }

    // 如果名称包含空格，则取每个单词的首字母
    final List<String> nameParts = name.split(' ');
    if (nameParts.length > 1) {
      return nameParts[0][0].toUpperCase() + nameParts[1][0].toUpperCase();
    }

    // 否则，取名称的前两个字符
    if (name.length > 1) {
      return name.substring(0, 2).toUpperCase();
    }

    // 如果名称只有一个字符，则取该字符
    return name[0].toUpperCase();
  }
}
